package day08;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

/**
 * 使用异常捕获机制完成下述读取操作
 * 读取emp.txt文件，并将每个员工信息读取出来，以一个Emp实例保存，然后将
 * 这些Emp实例存入到一个Map集合中。其中key为字符串，是该员工名字，而value
 * 是该Emp实例。
 * 存入后，要求用户输入一个员工的名字,如:张三
 * 若该员工存在则输出该员工所有信息(Emp的toString方法返回的字符串)
 * 输入的员工名若是英文，不要求区分大小写。
 * 若输入的员工名字不存在，则显示"查无此人"
 * 
 * @author Bonnie
 *
 */
public class Test04 {
    public static void main(String[] args) {
        HashMap<String,Emp> emps = new HashMap<>();
        Scanner input = new Scanner(System.in);
        try {
            BufferedReader br = new BufferedReader(new FileReader("Home_Work/src/day08/emp.txt"));
            String line;
            while ((line = br.readLine())!=null){
                getEmpMap(emps,getEmp(line));
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        System.out.println("输入一个员工姓名");
        String name = input.next();
        name = getName(emps, name);
        if(emps.containsKey(name)){
            System.out.println(emps.get(name).toString());
        }else {
            System.out.println("查无此人");
        }

    }

    public static void getEmpMap(HashMap<String, Emp> emps, Emp emp){
        emps.put(emp.getName(), emp);
    }

    public static Emp getEmp(String str){
        String[] strs = str.split(",");
        String name = strs[0];
        int age = Integer.parseInt(strs[1]);
        String gender = strs[2];
        int salary = Integer.parseInt(strs[3]);
        String date = strs[4];
        return new Emp(name, age, gender, salary, date);
    }

    public static String getName(HashMap<String, Emp> emps,String name){
        Set<String> names = emps.keySet();
        for(String n : names){
            if (name.equalsIgnoreCase(n)){
                return n;
            }
        }
        return name;
    }
}
